home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / test / dblconst.c < prev    next >
C/C++ Source or Header  |  1992-11-23  |  740b  |  41 lines

  1.  
  2. char TmpBuf[256];
  3.  
  4. extern double IEEEDPFlt();
  5. extern double IEEEDPAdd();
  6. extern double IEEEDPMul();
  7. extern double IEEEDPPow();
  8.  
  9. main(ac, av)
  10. char *av[];
  11. {
  12.     double acc;     /*  accumulated value    */
  13.     double ten = IEEEDPFlt(10);
  14.     short x;
  15.  
  16.     /*
  17.      *    .<TmpBuf> x 10^X    Convert a digit at a time.
  18.      */
  19.  
  20.     strcpy(TmpBuf, av[1]);
  21.     x = 0;
  22.  
  23.     clrmem(&acc, sizeof(acc));
  24.     {
  25.     char c;
  26.     short i;
  27.  
  28.     for (i = 0; c = TmpBuf[i]; ++i) {
  29.         acc = IEEEDPAdd(IEEEDPMul(acc, ten), IEEEDPFlt(c - '0'));
  30.     }
  31.     /*x -= i;      /*  adjust exponent */
  32.     }
  33.     acc = IEEEDPMul(acc, IEEEDPPow(IEEEDPFlt(atoi(av[2])), ten));
  34.  
  35.     printf("$%08lx,$%08lx\n", ((long *)&acc)[0], ((long *)&acc)[1]);
  36.     fpa((float)acc, TmpBuf);
  37.     puts(TmpBuf);
  38. }
  39.  
  40.  
  41.